package com.gxa.hualianeshop.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.gxa.hualianeshop.entity.pojo.Sku;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

/**
 * @author bill
 * @date 2023/7/24 16:39
 */

public interface SkuMapper extends BaseMapper<Sku> {

//    通过注解的形式定义sql   select num from tb_sku where sku_id= #{skuId} and num>=#{num} for update
    // mybatis 使用注解替换 xml中的配置
    // @Select(value="sql语句")     如果含有参数, 配合 @Param注解就可以直接使用#{paramName} , 而不是#{param1}, 阅读性更好
    // @Update @Delete...  同理

//    <select id="getNumById" parameterType="int"> </select>

    @Select(value = "select num from tb_sku where id= #{skuId} and num>=#{num} for update")
    Integer getNumById(@Param("skuId") Long skuId,@Param("num") Integer num);

    @Update("update tb_sku set num=num-#{num} where id=#{skuId} ")
    void updateNumById(@Param("skuId") Long skuId,@Param("num") Integer num);
}
